package cn.itsource.product.controller;

import cn.itsource.dto.ProductDto;
import cn.itsource.product.domain.TProduct;
import cn.itsource.product.query.ProductQuery;
import cn.itsource.product.service.IProductService;
import cn.itsource.utils.AjaxResult;
import cn.itsource.utils.PageList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/product")
public class ProductController {
    @Autowired
    private IProductService productService;


    /**
     * 分页查询--- 支持 运营后台和门户前端共同使用。
     * 区别：查询的条件不同而已
     *
     * @param query
     * @return
     */
    @PostMapping
    public PageList<TProduct> findPageByParam(@RequestBody ProductQuery query) {

        return productService.findPageByParam(query);
    }

    @PostMapping("/save")
    public AjaxResult saveOrUpdate(@RequestBody ProductDto dto) {
        return productService.saveOrUpdate(dto);
    }

    /**
     * 功能说明 宠物上下架
     *
     * @param ids
     * @param state
     * @return cn.itsource.utils.AjaxResult
     * @author caiwen
     */
    @GetMapping("/updateState")
    public AjaxResult updateState(String ids, Long state) {
        return productService.updateState(ids, state);
    }

    /**
     * 根据前端路径传参方式，访问后台
     *
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public ProductDto findDtoById(@PathVariable("id") Long id) {
        return productService.findDtoById(id);
    }
}
